(function( $ ){
	$.fn.ntFileInput = function(options) {

		var defaults = {
			'botaoLeft' : false,
			'botaoVisivel': true
		};

		var settings = $.extend( {}, defaults, options );

		return this.each(function() {

       			//Seta position relative para o label para garantir que não vai ser retirado no css
       			$(this).css({position: 'relative'});


				// Pega o input
				var input = $(this).children('input');


				//Escreve o fakeInput
				$(this).append('<p></p>');



				/*=======| Fake Input |=======*/

				// Pega o fakeInput onde se escreve o nome do arquivo
				var fakeInput = $(this).children('p');
				
				//Pega o placeholder do Input
				var textoInput = input.attr('texto-input');

				//Escreve no fakeInput o texto do texto-input 	
				fakeInput.text(textoInput);




				/*=======| Botão |=======*/

				//Pega o parametro do botão, se é pra ser mostrado ou não
				var botaoVisivel  = settings.botaoVisivel;

				//Se estiver true escreve o botão 
				if (botaoVisivel == true) {	
					$(this).append('<div></div>');
				};

				//Pega o placeholder do Input
				var textoBotao = input.attr('texto-botao');

				// Pega o botao de upload
				var botao = $(this).children('div');
				
				//escreve no botao o texto dele
				botao.text(textoBotao);

				// Pega as configurações passadas como parâmetro
				var posicaoBotao = settings.botaoLeft;

				/**
				 * Se estiver setao um true no botao left 
				 * aplica a classe para ele se comportar nesta posição
				 */
				 if (posicaoBotao == true) {
				 	botao.addClass('leftFile');
				 	fakeInput.addClass('rightFile');
				 } else{
				 	fakeInput.addClass('leftFile');
				 	botao.addClass('rightFile');
				 };



				//Chama a função para pegar o nome do arquivo e escrever no fakeInput de texto
				$(this).on('change', function(){

				// Pega o nome do input removendo o fakepath no chrome
				var nomeArquivo = input.val().split('\\').pop();

				//Escreve na fakeInput o nome do arquivo
				fakeInput.text(nomeArquivo);

				// Se retornar vazio volta a escrever o que tinha no inicio
				if (nomeArquivo == '') {	
					fakeInput.text(textoInput)
				};

			});

		});

	}; 
})( jQuery );